﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.Office.Tools;
using Microsoft.Office.Tools.Ribbon;
using Microsoft.Office.Interop.PowerPoint;
using Microsoft.Office.Core;

namespace An_Im.Extension.Contract
{
    /// <summary>
    /// 拓展组件。
    /// </summary>
    public interface IExtend
    {
        string Name { get; }
        string Description { get; }
        string Author { get; }
        string Version { get; }

        VBAReference VBAReference { get; }

        /// <summary>
        /// 初始化函数，您需要接受传递进来的参数，以实现对 PPT 的访问。
        /// </summary>
        /// <param name="application">顶层 PPT 对象</param>
        /// <param name="customTaskPaneCollection">自定义任务栏集合</param>
        void Initialize(Application application, CustomTaskPaneCollection customTaskPaneCollection);

        /// <summary>
        /// 自定义的命令列表。
        /// </summary>
        IEnumerable<IAnImCommand> CustomCommandList { get; }

    }
}
